package com.library.admin.modules.book.service;

import com.library.admin.modules.book.entity.Book;
import com.library.admin.modules.book.vo.BookVO;
import com.library.admin.modules.book.bo.BookPage;
import com.library.admin.modules.book.bo.BookInsert;
import com.library.admin.modules.book.bo.BookUpdate;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * @Author xyh
 * @Desc 图书表(Book)表服务接口
 * @Date 2023-10-05 17:27:46
 */
public interface BookService extends IService<Book> {

    /**
     * 分页查询
     */
    IPage<BookVO> queryByPage(BookPage page);

    /**
     * 初始化数据
     */
    void init();

    /**
     * 根据ID查详情
     */
    BookVO queryById(Integer id);

    /**
     * 新增数据
     */
    boolean insert(BookInsert bookInsert);

    /**
     * 修改数据
     */
    boolean update(BookUpdate bookUpdate);

    /**
     * 通过主键删除数据
     */
    void deleteById(Integer id);

    /**
     * 图书筛选下拉数据
     * @return
     */
    List<Book> getBookList();

    /**
     * 修改图书数量
     * @param bookId 图书id
     * @param num 借阅的数量
     * @param borrowingOrReturn true:借阅， false：归还
     */
    boolean updateBookNum(Integer bookId, Integer num, Boolean borrowingOrReturn);

}
